<?php 

	/**
	 * 面向对象关键字及魔术方法
	 * PHP中final不定义产量，所以就不会使用，也不能使用final来修饰成员属性
	 *
	 * 1、final可以修饰类  ---这个类不能去扩展，也不能使用final来修饰成员属性
	 * 2、final可以修饰方法  ---这个方法，就不能在子类中覆盖（不然子类改这个方法成员属性）
	 * 
	 */

	final class Person{
		protected $name;
		protected $age;
		protected $sex;

		public function __construct($name, $age, $sex){
			$this->name = $name;
			$this->age  = $age;
			$this->sex  = $sex;
		}

		public function say(){
			echo "大家好！我的名字叫：{$this->name}，我已经{$this->age}岁了，我是{$this->sex}人";
		}

		public function eat(){
			echo "大家好！！！我叫张三";
		}

		public function run(){

		}

	}

	class Study extends Person{
		public $school = "EDU";

		public function say(){
			parent::say();
			echo "我在{$this->school}学校";
		}


	}

	class Teacher extends Study {
		public $work;

		public function dowork(){

		}
	}


	$a = new Study("Tom", 25, "女");

	$a->say();


 ?>